package com.google.code.timeeditapplication.controller;

import java.util.ArrayList;
import java.util.Date;

import com.google.code.timeeditapplication.model.implementation.Schedule;

/**
 * This class creates a schedule, from a given schedule, according to the user
 * wishes. With parameters such as date and which schedule to create from.
 * 
 * @author antonlin
 * 
 */
public interface IScheduleController {

	/**
	 * returns the schedule for the active date
	 * 
	 * @return schedule
	 */
	public Schedule getDaySchedule();

	/**
	 * returns a list containing schedules for each day in the week surrounding
	 * the active date
	 * 
	 * @return ArrayList<Schedule>
	 */
	public ArrayList<Schedule> getWeekSchedule();

	/**
	 * set the date for which you want see the schedule
	 * 
	 * @param date
	 */
	public void setActiveDate(Date date);

	/**
	 * get the active date
	 * 
	 * @return
	 */
	public Date getActiveDate();

	/**
	 * Sets the active schedule
	 * 
	 * @param schedule
	 *            the schedule that the user wants to view
	 */
	public void setActiveSchedule(Schedule schedule);
}
